﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HPSocketLibrary.Devices
{
    /// <summary>
    /// 设备信息的类。
    /// </summary>
    public class DeviceInfo
    {
        /// <summary>
        /// 获取或设置设备编号。
        /// </summary>
        public string DeviceNumber { get; set; }

        /// <summary>
        /// 获取或设置设备名称。
        /// </summary>
        public string DeviceName { get; set; }

        /// <summary>
        /// 获取或设置设备序列号。
        /// </summary>
        public string SerialNumber { get; set; }

        /// <summary>
        /// 获取或设置工控机处理器。
        /// </summary>
        public string Processor { get; set; }

        /// <summary>
        /// 获取或设置设备尺寸。
        /// </summary>
        public string DeviceSize { get; set; }
    }

    /// <summary>
    /// 封箱机相关的设置。
    /// </summary>
    public class LockBoxSettings//根据获取的UIElement动态给关联实体类赋值，比如这个实体类为
    {
        /// <summary>
        /// 获取或设置箱体移动输送带脉冲系数。
        /// </summary>
        public float BoxMoveConveyorPultomm { get; set; }

        /// <summary>
        /// 获取或设置箱体宽度输送带脉冲系数。
        /// </summary>
        public float BoxWidthConveyorPultomm { get; set; }

        /// <summary>
        /// 获取或设置箱体高度输送带脉冲系数。
        /// </summary>
        public float BoxHeightConveyorPultomm { get; set; }

        /// <summary>
        /// 获取或设置推箱电机速度。
        /// </summary>
        public uint BoxPushSpeed { get; set; }

        /// <summary>
        /// 获取或设置整体宽度。
        /// </summary>
        public uint WholeWidth { get; set; }

        /// <summary>
        /// 获取或设置整体高度。
        /// </summary>
        public uint WholeHeight { get; set; }

        /// <summary>
        /// 获取或设置箱体移动速度。
        /// </summary>
        public uint BoxMoveSpeed { get; set; }

        /// <summary>
        /// 获取或设置取票距离（单位：毫米）。
        /// </summary>
        public uint GetTicketMm { get; set; }

        /// <summary>
        /// 获取或设置贴票高度（单位：毫米）。
        /// </summary>
        public uint HighTicketMm { get; set; }
        /// <summary>
        /// 高度电机速度
        /// </summary>
        public uint HeighSpeed { get; set; }
        /// <summary>
        /// 宽度电机速度
        /// </summary>
        public uint WidthSpeed { get; set; }
        /// <summary>
        /// 上下取票电机速度
        /// </summary>
        public uint TicketMoveUdSpeed { get; set; }
        /// <summary>
        /// 左右取票电机速度
        /// </summary>
        public uint TicketMoveLrSpeed { get; set; }
        /// <summary>
        /// 下压高度
        /// </summary>
        public uint WhbackMM { get; set; }
    }
    /// <summary>
    /// 开箱设置实体类
    /// </summary>
    public class OpenBoxSettings
    {
        /// <summary>
        /// 开箱速度
        /// </summary>
        public double OpenBoxSpeed { get; set; }

        /// <summary>
        /// 箱规长
        /// </summary>
        public double BoxLength { get; set; }

        /// <summary>
        /// 箱规宽
        /// </summary>
        public double BoxWidth { get; set; }

        /// <summary>
        /// 箱规高
        /// </summary>
        public double BoxHeight { get; set; }

        /// <summary>
        /// 箱仓对应取箱轴X坐标
        /// </summary>
        public double PickupAxisX { get; set; }

        /// <summary>
        /// 箱仓对应取箱轴Y坐标
        /// </summary>
        public double PickupAxisY { get; set; }

        /// <summary>
        /// 取箱、开箱轴交接X坐标
        /// </summary>
        public double HandoverAxisX { get; set; }

        /// <summary>
        /// 取箱、开箱轴交接Y坐标
        /// </summary>
        public double HandoverAxisY { get; set; }

        /// <summary>
        /// 箱仓对应取箱X轴坐标
        /// </summary>
        public double PickupXAxis { get; set; }

        /// <summary>
        /// 箱仓对应取箱Z轴坐标
        /// </summary>
        public double PickupZAxis { get; set; }

        /// <summary>
        /// 封箱X轴坐标
        /// </summary>
        public double SealingXAxis { get; set; }

        /// <summary>
        /// 封箱Z轴坐标
        /// </summary>
        public double SealingZAxis { get; set; }

        /// <summary>
        /// 封箱速度
        /// </summary>
        public double SealingSpeed { get; set; }

        /// <summary>
        /// 抛箱X坐标
        /// </summary>
        public double ThrowXAxis { get; set; }

        /// <summary>
        /// 抛箱Z坐标
        /// </summary>
        public double ThrowZAxis { get; set; }
    }
}

